درس ششم

ابزار وبلاگ

Computer
درباره وبلاگ


سلام این وبلاگ جهت آموزش برنامه نویسی ویژوال ساخته شده است آموزش سی شارپ ، ASP.net, ویژوال استودیو انشاءالله که به دردتون بخوره!!!!!
نويسندگان
پنج شنبه 30 آذر 1391برچسب:سی شارپ,آموزش,ویژوال استودیو,C#,Visual studio,learning, :: 16:34 :: نويسنده : مصطفی

ﺣﻠﻘﻪ ھﺎ در ﺳﻲ ﺷﺎرپ :‬

‫ﻣﻘﺪﻣﻪ :‬

‫اﮔﺮ ﻧﯿﺎز ﺑﺎﺷﺪ ﺗﺎ ﻗﻄﻌﻪ ای از ﻛﺪ ﺑﯿﺶ از ﻳﻜﺒﺎر اﺟﺮا ﺷﻮد ﻧﯿﺎز ﺑﻪ اﺳﺘﻔﺎده از ﺣﻠﻘـﻪ ھـﺎ ﻣـﻲ ﺑﺎﺷـﺪ. ﺑـﺮای ﻣﺜـﺎل ﻓـﺮض ‫ﻛﻨﯿﺪ آراﻳﻪ ای ﺑﻪ ﻃﻮل ۱۰۰۰ ﺗﻌﺮﻳﻒ ﻛﺮده اﻳﺪ. اﻛﻨﻮن ﻣﻲ ﺧﻮاھﯿﺪ آﻧﺮا ﺑﺎ ھﺰار ﻋﺪد ﻣﺘﻮاﻟﻲ ﭘﺮﻛﻨﯿـﺪ. ﺑـﺪﻳﮫﻲ اﺳـﺖ ﻛـﻪ‬ ‫روش زﻳﺮ ﻛﺎرآﻣﺪ ﻧﯿﺴﺖ! :‬

‫;[۱۰۰۰]‪int[] intData = new int‬‬
‫;۰=[۰]‪intData‬‬
‫.‬
.‬
.‬
;۹۹۹=[۹۹۹]‪intData‬‬


‫ﻧﻮﺷﺘﻦ اﻳﻦ ﺧﻄﻮط ﻣﺘﻮاﻟﻲ اﺣﺘﻤﺎﻻ ﺑﺎ ﻛﭙﻲ و ﭘﯿﺴﺖ و اﺻﻼح آن ﺣﺪاﻗﻞ ﻧﯿﻢ ﺳﺎﻋﺖ ﻃﻮل ﻣﻲ ﻛﺸﺪ! ﺑﻨﺎﺑﺮاﻳﻦ ﻧﯿـﺎز ﺑـﻪ‬ ‫وﺳﯿﻠﻪ ای ﺣﺲ ﻣﻲ ﺷﻮد ﻛﻪ ﺑﺘﻮان ﺑﻮﺳﯿﻠﻪ ی آن اﻣﺜﺎل اﻳﻨﮕﻮﻧﻪ ﻛﺎرھﺎ را اﻧﺠﺎم داد.‬

‫ﺗﻌﺮﻳﻒ ﺣﻠﻘﻪ ھﺎ و اﺳﺘﻔﺎده از آﻧﮫﺎ :‬

‫ﺑﺮای ﺗﻌﺮﻳﻒ ﺣﻠﻘﻪ ھـﺎ اﺑﺰارھـﺎی ﻣﺘﻌـﺪدی ﻣﺎﻧﻨـﺪ ‪ while, do , for , foreach‬ وﺟـﻮد دارﻧـﺪ. اﺳـﺘﻔﺎده و اﻧﺘﺨـﺎب آﻧﮫـﺎ‬ ‫ﺑﺴﺘﮕﻲ ﺑﻪ ﺳﻠﯿﻘﻪ ی ﺷﻤﺎ و ﻣﻨﻄﻖ ﺑﺮﻧﺎﻣﻪ دارد. در ھﺮ ﺣﺎل ﻳﻚ ﻣﺴﺎﻟﻪ ﺑـﺪﻳﮫﻲ اﺳـﺖ ﻛـﻪ ھﻤـﻮاره ﺑـﯿﺶ از ﻳـﻚ راه ‫ﺣﻞ ﺑﺮای ﻳﻚ ﻣﺴﺎﻟﻪ وﺟﻮد ﺧﻮاھﺪ داﺷﺖ.‬


‫اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ی ‪: for‬‬

ﻋﻤﻮﻣﺎ ﻛﺪﻧﻮﻳﺴﻲ را ﺑﺎ ﻛﺪ ﻧﻮﻳﺴﻲ ﻣﻲ ﺗﻮان آﻣﻮﺧﺖ! ﺑﻨﺎﺑﺮاﻳﻦ در ﻣﻮرد اﻧﻮاع ﺣﻠﻘﻪ ھﺎ ﻣﺜﺎﻟﮫﺎﻳﻲ اراﺋﻪ ﺧﻮاھﺪ ﮔﺮدﻳﺪ.‬

‫ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ ﺟﺪﻳﺪ ‪ console‬را در ‪ VS.NET‬ﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧـﺮا دراﺑﺘـﺪا ex۷۰ ‬اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳـﭙﺲ ﻛـﺪ‬
‫زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ :‬

‫;‪using System‬‬

‫‪namespace ex۷۰‬‬
‫}‬
‫‪class Class۱‬‬
}‬
‫[‪[STAThread‬‬
‫(‪static void Main(string[] args‬‬
}‬
‫;[۰۰۰۱]‪int[] intData = new int‬‬
‫( ++‪for ( int i=۰ ; i<۱۰۰۰ ; i‬‬
‫;‪intData[i]=i‬‬
‫(++‪for(int i=۰ ; i< intData.Length ; i‬‬
}‬
‫;[‪int j = intData[i‬‬
‫;(‪Console.WriteLine("intData[" + i + "]=" + j‬‬
‫{‬
‫;()‪Console.ReadLine‬‬
{‬
{‬
‫{‬


‫ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :‬
‫١- ﺑﺮای ﺗﻌﺮﻳﻒ ﺣﻠﻘﻪ ی ‪ for‬ ھﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ ﺑﯿﻨﯿﺪ ﺑﺎﻳﺪ ﺗﻌﺪاد ﺑﺎر اﺟـﺮای ﺣﻠﻘـﻪ ( اﻳﻨﺠـﺎ از ۰ ﺗـﺎ ۹۹۹ اﺳـﺖ ) و‬ ‫ھﻤﭽﻨﯿﻦ ﻧﺤﻮه ی رﺳﯿﺪن از ۰ ﺑﻪ ۰۰۰۱ را ﻣﺸﺨﺺ ﻛﺮد ( در اﻳﻨﺠﺎ ++‪ i‬اﺳـﺖ ﻳﻌﻨـﻲ ھـﺮ ﺑـﺎر ﻳـﻚ واﺣـﺪ ﺑـﻪ ‫ﺷﻤﺎرﺷﮕﺮ ﺣﻠﻘﻪ اﺿﺎﻓﻪ ﻣﻲ ﺷﻮد. )‬
‫٢- در زﺑﺎن ﺳﻲ ++‪ i‬ﻳﻌﻨﻲ ۱+‪ i=i‬و --‪ i‬ﻳﻌﻨﻲ ۱-‪ i=i‬و ﻛـﻼ ‪ i-=n‬ ﻳﻌﻨـﻲ ‪ i=i-n‬ و ﺑـﻪ ھﻤـﯿﻦ ﺗﺮﺗﯿـﺐ. ﺑـﺮای ﻣﺜـﺎل ‫‪ i*=n‬ ﻳﻌﻨﻲ ‪ i=i*n‬ و ‪ i+=n‬ ﻳﻌﻨﻲ ‪ i=i+n‬ و ...‬
‫٣- اﮔﺮ ﭘﺲ از ﺣﻠﻘﻪ ی ‪ for‬ ﻳﻚ ﺧﻂ ﻛﺪ داﺷﺘﻪ ﺑﺎﺷﯿﻢ ﻧﯿﺎزی ﺑﻪ آﻛﻮﻻد ﻧﯿﺴﺖ ( ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ اول ﻛﺪ ). وﻟﻲ اﮔـﺮ‬ ‫ﺗﻌﺪاد ﺧﻄﻮط ﻣﺮﺑﻮط ﺑﻪ ﺑﺪﻧﻪ ی ‪ for‬ زﻳﺎد ﺑﻮد ﺑﺎﻳﺪ ﺣﺘﻤﺎ از آﻛﻮﻻد اﺳﺘﻔﺎده ﺷﻮد ( ﻣﺎﻧﻨﺪ ﻗﺴﻤﺖ دوم ﻛﺪ ). ( اﻳـﻦ‬ ‫ﻗﺎﻋﺪه ای ﻛﻠﻲ اﺳﺖ در زﺑﺎﻧﮫﺎی ﻣﺸﺘﻖ ﺷﺪه از زﺑﺎن ﺳﻲ در ﻣﻮرد ھﺮ ﭼﯿﺰی! )‬
‫۴- ﻓﺮض ﻛﻨﯿﺪ در ﻗﺴﻤﺖ اول ﻛﺪ ﺑﺎﻻ ﺑﺠﺎی ۱۰۰۰ ﻣﻲ ﻧﻮﺷﺘﯿﺪ ۱۰۰۱ . ﺳﺮﻳﻌﺎ ﺑﺎ ﻳﻚ ﺧﻄﺎی زﻣـﺎن اﺟـﺮا ﻣﻮاﺟـﻪ‬ ‫ﻣﻲ ﺷﺪﻳﺪ. زﻳﺮا ﻣﻲ ﺧﻮاﺳﺘﯿﺪ ﺑﻪ ﻋﻀﻮی از آراﻳﻪ دﺳﺘﺮﺳﻲ ﭘﯿﺪا ﻛﻨﯿـﺪ ﻛـﻪ ﺗﻌﺮﻳـﻒ ﻧـﺸﺪه اﺳـﺖ. راه ﻣـﺪرن ‫ﭼﻚ ﻛﺮدن اﻳﻦ ﻣﺴﺎﺋﻞ اﺳﺘﻔﺎده از ﺧﺎﺻﯿﺖ ‪ Length‬آراﻳﻪ اﺳﺖ ﻛﻪ در ﻗﺴﻤﺖ دوم ﻛـﺪ در ﻋﻤـﻞ ﻣـﺸﺎھﺪه ‫ﻣﻲ ﻧﻤﺎﻳﯿﺪ. ھﻤﯿﺸﻪ از اﻳﻦ روش اﺳﺘﻔﺎده ﻛﻨﯿﺪ.‬
‫۵- ﺣﻠﻘﻪ ی اول ﻳﻌﻨﻲ اﻳﻨﻜﻪ ﻛﺎر ﭘﺮ ﻛﺮدن آراﻳﻪ ‪ intData‬ را از ﺻﻔﺮ ﺗﺎ ۹۹۹ ﻳﻜﻲ ﻳﻜﻲ ( ++‪ ( i‬اﻧﺠﺎم ﺑﺪه.‬

‫اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ی ‪: while‬‬



‫ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ ﺟﺪﻳﺪ ‪ console‬را در ‪ VS.NET‬ ﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧـﺮا دراﺑﺘـﺪا ‪ ex۸۰ ‬ اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳـﭙﺲ ﻛـﺪ‬
زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ :‬

‫;‪using System‬‬

‫‪namespace ex۸۰‬‬
‫}‬
‫‪class Class۱‬‬
‫}‬
‫[‪[STAThread‬‬
‫(‪static void Main(string[] args‬‬
}‬
‫;۱ = ‪int n‬‬

‫(۶ < ‪while (n‬‬
}‬
‫;(‪Console.WriteLine("Current value of n is {۰}", n‬‬
‫;++‪n‬‬
‫{‬

‫;()‪Console.ReadLine‬‬
{‬
‫{
‫{‬



‫ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :‬
‫١- ﺣﻠﻘﻪ ی ‪ while‬ در ﺑﺎﻻ ﻛﺎر اﻧﺠﺎم ﺣﻠﻘﻪ را ﺗﺎ ھﻨﮕـﺎﻣﻲ اﻧﺠـﺎم ﻣـﻲ دھـﺪ ﻛـﻪ ﺷـﺮط ذﻛـﺮ ﺷـﺪه در اﺑﺘـﺪای آن‬ ‫ﺻﺎدق و ﺑﺮﻗﺮار ﺑﺎﺷﺪ. ﻳﻌﻨﻲ در ﺣﻠﻘﻪ ی ﻓﻮق ﺗﺎ وﻗﺘﻲ ۶<‪ n‬اﺳﺖ اﻳﻦ ﺣﻠﻘﻪ اداﻣﻪ ﺧﻮاھﺪ ﻳﺎﻓﺖ.‬
‫٢- ﺣﻠﻘﻪ ی ‪ while‬ ﺻﻔﺮ ﻳﺎ ﺑﯿﺸﺘﺮ ﺑﺎر ﻣﻤﻜﻦ اﺳﺖ اﺟﺮا ﺷﻮد.‬
‫٣- در ﻛﺪ ﻓﻮق از {۰} اﺳﺘﻔﺎده ﮔﺮدﻳﺪه اﺳﺖ. ﻣﺘﺪ ‪ WriteLine‬ﺑﻪ ﺷﻤﺎ اﻳﻦ اﺟﺎزه را ﻣﻲ دھﺪ ﻛـﻪ ‪ n‬ﺗـﺎ آرﮔﻮﻣـﺎن ‫ﺑﺮای آن ﺗﻌﺮﻳﻒ ﻛﻨﯿﺪ و ﻣﻘﺎدﻳﺮ ھﺮ ﻛﺪام را ﻛﻪ ﺧﻮاﺳﺘﯿﺪ در ﻛـﺪ ﻧﻤـﺎﻳﺶ دھﯿـﺪ از {‪ {x‬اﺳـﺘﻔﺎده ﻛﻨﯿـﺪ. در اﻳـﻦ ﻣﻮرد ﻣﻘﺪار آرﮔﻮﻣﺎن ‪ x‬ام ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد.‬

اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ی ‪: do‬‬

‫ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ ﺟﺪﻳﺪ ‪ console‬را در ‪ VS.NET‬ﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧـﺮا دراﺑﺘـﺪا ‪ ex۹۰‬ اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳـﭙﺲ ﻛـﺪ‬
‫زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ :‬
 

‫;‪using System‬‬

‫‪namespace ex۹۰‬‬
‫}‬

‫‪class Class۱‬‬
‫}‬
‫[‪[STAThread‬‬
‫(‪static void Main(string[] args‬‬
‫}‬
‫;‪int x‬‬
‫;۰ = ‪int y‬‬

‫‪do‬‬
‫}‬
‫;++‪x = y‬‬
‫;(‪Console.WriteLine(x‬‬

‫;(۵ < ‪}while(y‬‬

‫;()‪Console.ReadLine‬‬

{‬
{‬
‫{


‫ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :‬
‫١- اﻳﻦ ﺣﻠﻘﻪ ﺑﻪ ﺣﻠﻘﻪ ی ‪ do…while‬ﻣﻌﺮوف اﺳﺖ و ھﺮ دو ﺟﺰء آن ﺑﺎﻳﺪ ذﻛﺮ ﮔﺮدد.‬
‫٢- اﻳﻦ ﺣﻠﻘﻪ ﺗﺎ زﻣﺎﻧﻲ ﻛﻪ ﺷﺮط ذﻛﺮ ﺷﺪه در ﻗﻤﺴﺖ ‪ while‬ﺻﺤﯿﺢ اﺳﺖ اداﻣﻪ ﻣﻲ ﻳﺎﺑﺪ.‬
‫٣- اﻳﻦ ﺣﻠﻘﻪ در اﺑﺘﺪای ﻛﺎر ﺑﺪون ﺗﻮﺟﻪ ﺑﻪ ﻗﺴﻤﺖ ‪ while‬ ﺣﺪاﻗﻞ ﻳﻜﺒﺎر اﺟﺮا ﻣﻲ ﺷﻮد. ( ﻣﺜﺎل زﻳﺮ را اﺟﺮا ﻧﻤﺎﻳﯿﺪ )‬

‫;۰۱ = ‪int n‬‬
‫‪do‬‬
}‬
‫;(‪Console.WriteLine("Current value of n is {۰}", n‬‬
‫;++‪n‬‬
‫;(۶ < ‪} while (n‬‬





‫اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ی ‪: foreach‬‬

‫ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی ﺳﻲ ﺷﺎرپ ﺟﺪﻳﺪ ‪ console‬ را در ‪ VS.NET‬ﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧـﺮا دراﺑﺘـﺪا ‪ ex۱۰‬ اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. ﺳـﭙﺲ ﻛـﺪ‬ ‫زﻳﺮ را درون آن ﺑﻨﻮﻳﺴﯿﺪ :‬

‫;‪using System‬‬

‫‪namespace ex۱۰‬‬
‫}‬
‫‪class Class۱‬‬
‫}
[‪[STAThread‬‬
‫(‪static void Main(string[] args‬‬
‫}‬
‫;۰ = ‪int odd = ۰, even‬‬
‫;{۱۱,۸,۷,۵,۲,۱,۰} [] ‪int[] arr = new int‬‬

‫(‪foreach (int i in arr‬‬
‫}‬
(۰ == ۲%‪if (i‬‬
‫;++‪even‬‬
‫‪else‬‬
‫;++‪odd‬‬
{‬

‫)‪Console.WriteLine‬‬
‫,".‪"Found {۰} Odd Numbers, and {۱} Even Numbers‬‬
‫; (‪odd, even‬‬

‫;()‪Console.ReadLine‬‬

{‬
{‬
‫{‬

‫ﺗﻮﺿﯿﺤﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :‬
‫١- از ‪ foreach‬ ﺑﺮای ﺣﺮﻛﺖ در ﺑﯿﻦ اﻋﻀﺎی ﻳﻚ آراﻳﻪ (ﻣﺎﻧﻨﺪ ﻣﺜﺎل ﺑﺎﻻ) و ﻳﺎ ﻣﺠﻤﻮﻋﻪ اﻳﻲ از اﺷﯿﺎء اﺳـﺘﻔﺎده ﻣـﻲ ﺷﻮد (روﺷﻲ ﺷﻜﯿﻞ ، ﻣﺪرن و ﻣﻄﻤﺌﻦ! و ﺗﻘﺮﻳﺒﺎ ﺑﻪ ارث رﺳﯿﺪه از وﻳﮋوال ﺑﯿﺴﯿﻚ!! ).‬
‫٢- در زﺑﺎﻧﮫﺎی ﻣﺸﺘﻖ ﺷﺪه از ‪ ، C‬ﻋﻤﻠﮕﺮ % ، ﺑﺎﻗﯿﻤﺎﻧﺪه را ﻣﺤﺎﺳﺒﻪ ﻣﻲ ﻛﻨﺪ.‬
‫٣- در ﻛﺪ ﻓﻮق ﺑﺎ اﺳﺘﻔﺎده از ﺣﻠﻘﻪ ی ‪ foreach‬ﺗﻚ ﺗﻚ اﻋﻀﺎی آراﻳﻪ در ﻣﻮرد زوج و ﻳﺎ ﻓـﺮد ﺑﻮدﻧـﺪ ﻣـﻮرد ﺑﺮرﺳـﻲ‬ ‫ﻗﺮار ﮔﺮﻓﺘﻪ اﻧﺪ و ﺗﻌﺪاد اﻋﻀﺎی زوج و ﻓﺮد در آﺧﺮ ﻧﻤﺎﻳﺶ داده ﻣﻲ ﺷﻮد.‬


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:





پيوندها



نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 20
بازدید دیروز : 4
بازدید هفته : 20
بازدید ماه : 33
بازدید کل : 3358
تعداد مطالب : 14
تعداد نظرات : 5
تعداد آنلاین : 1


ابزار هدایت به بالای صفحه